import * as grpc from 'grpc';
import { Observable } from 'rxjs';
/** Namespace VA600Algorithm. */
export namespace VA600Algorithm {

    /** Contains all the RPC service clients. */
    export interface ClientFactory {

        /**
         * Returns the ProfessionalRunningPostureEvaluation service client.
         */
        getProfessionalRunningPostureEvaluation(): VA600Algorithm.ProfessionalRunningPostureEvaluation;
    }

    /** Builder for an RPC service server. */
    export interface ServerBuilder {

        /**
         * Adds a ProfessionalRunningPostureEvaluation service implementation.
         * @param impl ProfessionalRunningPostureEvaluation service implementation
         */
        addProfessionalRunningPostureEvaluation(impl: VA600Algorithm.ProfessionalRunningPostureEvaluation): VA600Algorithm.ServerBuilder;
    }

    /** Properties of a CommonReq. */
    export interface CommonReq {

        /** CommonReq value */
        value?: (number|null);
    }

    /** Properties of a CommonRes. */
    export interface CommonRes {

        /** CommonRes code */
        code?: (VA600Algorithm.CommonRes.Code|null);
    }

    export namespace CommonRes {

        /** Code enum. */
        export enum Code {
            OK = 0
        }
    }

    /** Properties of a ProfessionalRunningPostureReq. */
    export interface ProfessionalRunningPostureReq {

        /** ProfessionalRunningPostureReq height */
        height?: (number|null);

        /** ProfessionalRunningPostureReq weight */
        weight?: (number|null);
    }

    /** Constructs a new ProfessionalRunningPostureEvaluation service. */
    export interface ProfessionalRunningPostureEvaluation {

        /**
         * Calls StartPreheat.
         * @param request ProfessionalRunningPostureReq message or plain object
         *  * @param metadata Optional metadata
         * @returns Promise
         */
        startPreheat(request: VA600Algorithm.ProfessionalRunningPostureReq, metadata?: grpc.Metadata): Observable<VA600Algorithm.CommonRes>;

        /**
         * Calls StartProfessionalRunningPosture.
         * @param request CommonReq message or plain object
         *  * @param metadata Optional metadata
         * @returns Promise
         */
        startProfessionalRunningPosture(request: VA600Algorithm.CommonReq, metadata?: grpc.Metadata): Observable<VA600Algorithm.CommonRes>;

        /**
         * Calls StopProfessionalRunningPosture.
         * @param request CommonReq message or plain object
         *  * @param metadata Optional metadata
         * @returns Promise
         */
        stopProfessionalRunningPosture(request: VA600Algorithm.CommonReq, metadata?: grpc.Metadata): Observable<VA600Algorithm.CommonRes>;
    }
}
